using System;
using System.Collections.Generic;

namespace LannyPractiseCode
{
    //表示链表
    public class EmployeeLinkedList
    {
        //头指针，执行第一个Emp;因此我们这个链表的head是直接指向第一个Emp
        private Employee head;//默认为null
        //添加庄员到链表
        //说明
        //1.假定，当添加雇员时，id是自增长，即id的分配总是从小到大
        //因此我们将该 雇员直接加入到本链表的最后即可
        public void Add(Employee employee)
        {
            //添加第一个雇员
            if(head==null)
            {
                head=employee;
                return;
            }

            Employee curEmp=head;
            while(true)
            {
                if(head.Next==null)//说明链表最后
                    break;
                curEmp=curEmp.Next;
            }
            curEmp.Next=employee;
        }

        public Employee FindEmplyeeByID(int id)
        {
            if(head==null)
            {
                System.Console.WriteLine("为空。。");
                return null;
            }

            Employee curEmp=head;
            while(true)
            {
                if(curEmp.Id==id)
                    return curEmp;
                if(curEmp.Next==null)
                {
                    curEmp=null;
                    break;
                }

                curEmp=curEmp.Next;
            }

            return curEmp;
        }

        public void Display(int i)
        {
            if(head==null)
            {
                System.Console.WriteLine($"{i+1}条链表为空。。");
                return;
            }
            System.Console.WriteLine($"第{i+1}链表信息：");
            Employee curEmp=head;
            while(true)
            {
                System.Console.Write($"Id={curEmp.Id},Name={curEmp.Name} ==>");
                if(curEmp.Next==null)
                    break;
                curEmp=curEmp.Next;//后移，遍历。
            }
            System.Console.WriteLine();
        }
    }
}